package java01;

public class Parent {

    private String name="来破解我啊，来获取我的值";
    private int age;
    private static Son son;

    public Parent() {
    }

    public Parent(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public Son newSon(){//懒汉式单例模式
        if(son==null){
            son=new Son();
        }
        return son;
    }

    //编译器将内部类翻译成了Parent$Son.class
    class Son{

        //实际上创建的是private java01.Parent$Son(java01.Parent);带有一个外部类参数的私有构造器
        //虚拟机中没有私有类，所以利用该私有构造器生成一个包可见类java01.Parent$Son(java01.Parent, java01.Parent$1);，没有人可以调用这个构造器
        private Son(){
        }

        public void getSon(){
            System.out.println("儿子叫憨憨"+name+age);
        }
    }
}
